/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 言初
 * Date: 2023-12-25
 * Time: 22:14
 */
//其中一个L型骨牌需要用同一种编号进行编号。
//特殊方格用0进行输出。
//请保持输出宽度为5并左对齐，输出变量a建议使用printf(“-5d”, a);格式输出。

//输入的特殊格子的坐标是从1开始的，但是对于数组下标应该是从0开始的

import java.util.Scanner;


//棋盘覆盖问题

public class Main5 {
    public static int t=1;
    public static void func(int[][] arr,int tr,int tc,int pr,int pc,int size){
        if(size==1){
            return;
        }

        int t1=t;
        t++;
        //接下来去找它的四个方位，看特殊方格在哪里
        //找到特殊方格以后，就把另外的3个方位的交界位置的方格置为特殊方格

        //需要满足当前方格中：中间<左上<右上<左下<右下，

        if(pr<=(tr+size/2-1) && pr>=tr && pc<=(tc+size/2-1) && pc>=tc){
            //左上角
            func(arr,tr,tc,pr,pc,size/2);
        }else{
            //这个小子棋盘的右下角设为特殊方格
            arr[tr+size/2-1][tc+size/2-1]=t1;
            func(arr,tr,tc,tr+size/2-1,tc+size/2-1,size/2);
        }

        if(pr<=(tr+size/2-1) && pr>=tr && pc<=(tc+size-1) && pc>=(tc+size/2)){
            //右上角
            func(arr,tr,tc+size/2,pr,pc,size/2);
        }else{
            //左下角设为特殊方格
            arr[tr+size/2-1][tc+size/2]=t1;
            func(arr,tr,tc+size/2,tr+size/2-1,tc+size/2,size/2);
        }


        if(pr<=(tr+size-1) && pr>=(tr+size/2) && pc<=(tc+size/2-1) && pc>=tc){
            //左下角
            func(arr,tr+size/2,tc,pr,pc,size/2);
        }else{
            //右上角
            arr[tr+size/2][tc+size/2-1]=t1;
            func(arr,tr+size/2,tc,tr+size/2,tc+size/2-1,size/2);
        }


        if(pr<=(tr+size-1) && pr>=(tr+size/2) && pc<=(tc+size-1) && pc>=(tc+size/2)){
            //右下角
            func(arr,tr+size/2,tc+size/2,pr,pc,size/2);
        }else{
            //左上角
            arr[tr+size/2][tc+size/2]=t1;
            func(arr,tr+size/2,tc+size/2,tr+size/2,tc+size/2,size/2);
        }

    }

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[][] arr=new int[n][n];
        int pr=sc.nextInt();
        int pc=sc.nextInt();
        func(arr,0,0,pr-1,pc-1,n);
        // pr是行，pc是列

        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                System.out.printf("%-5d",arr[i][j]);
            }
            System.out.println();
        }
    }
}

